package chapter08_oop._interface;

/**
 * ClassName: SubClassTset
 * Package: capter08._interface
 * Description:
 *
 * @Author SherryAn
 * @Create 2025/7/22 11:10
 */
public class SubClassTset {
    public static void main(String[] args) {
        CompareA.method1();//静态方法可以直接用声明的主体去调
//        知识点1：接口中声明的静态方法只能被接口调用，不能使用其实现类进行调用
//        SubClass.method1();

//        知识点2：接口中声明的默认方法可以被实现类继承，实现类在没有重写此方法的情况下，默认调用接口中声明的默认方法。
//        如果实现类重写了此方法，则调用自己重写的方法。
        SubClass s1=new SubClass();
        s1.method2();

//        知识点3：类实现了两个接口，而两个接口中定义了同名同参数的默认方法，则实现类在没有重写此两个接口默认方法夫人情况下，会报错。-->接口冲突
//        要求：此时实现类必须重写接口中定义的同名同参数的方法
        s1.method3();

//        知识点4:子类(或实现类)继承了父类并实现了接口,父类和接口中声明的同名同参数的方法,
//                (其中,接口中的方法是默认方法),默认情况下,子类(或实现类)在**没有**重写此方法的情况下调用的是父类中的方法
//                即-->类优先原则。重写以后调的是重写后的方法。
        s1.method4();

    }
}
